package com.itheima.d8_generics_method;

import java.util.ArrayList;

public class Test2 {
    public static void main(String[] args) {
        // 需求：所有的汽车可以一起参加比赛。
        ArrayList<Car> list1 = new ArrayList<>();
        ArrayList<BENCHI> list2 = new ArrayList<>();
        ArrayList<BAOMA> list3 = new ArrayList<>();
        ArrayList<BYD> list4 = new ArrayList<>();
        ArrayList<Han> list5 = new ArrayList<>();

        match(list1);
        match(list2);
        match(list3);
        match(list4);
        System.out.println("---BYD及其子类型---");
        //match2(list1);
        //match2(list2);
        //match2(list3);
        match2(list4);
        match2(list5);

        System.out.println("---只能是BYD及父类型---");
        match3(list1);//Car
        //match3(list2);//BENCHI
        //match3(list3);//BAOMA
        match3(list4);//BYD
        //match3(list5);//Han
    }
    // ? 通配符，同配任意类型
    public static void match(ArrayList<?> cars) {

    }

    //只能是BYD及其子类型
    public static void match2(ArrayList<? extends BYD> cars) {

    }


    //只能是BYD及父类型
    public static void match3(ArrayList<? super BYD> cars) {

    }

}

class Car {
}

class BENCHI extends Car {
}

class BAOMA extends Car {
}

class BYD extends Car {
}

class Han extends BYD {

}